﻿using HalconDotNet;
using MvCamCtrl.NET.CameraParams;
using System;
using System.Collections.Concurrent;

namespace DualPlaneFR4Paster.Common.Services
{
    public delegate void ActionRef1<T1, T2>(T1 arg1,ref T2 arg2,T1 arg3);
    interface ICameraService
    {
        ActionRef1<IntPtr, MV_FRAME_OUT_INFO_EX> ImageCallbackFunc { get; set; }
        ConcurrentQueue<HObject> ImageQueue { get; set; }
        bool m_bIsDeviceOpen { get; set; }
        bool OpenCamera(string cameraIP);
        void CloseCamera();
        bool StartGrabe();
        bool StopGrabe();
        bool SetTriggerMode(uint triggerMode);
        bool SetExposureTime(float time);
        bool SetFrameRate(float rate);
    }
}
